package com.github.cyf.webSocket;

import com.github.cyf.service.RecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;

/**
 * 开启WebSocket支持的配置类
 * @author chenyifan
 * @create 2025-03-17 10:54
 */
@Configuration
public class WebSocketConfig {

    /**
     * bean注册：会自动扫描带有 @ServerEndpoint 注解声明的 Websocket Endpoint(端点)，注册成为 Websocket bean。
     */
    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }

    /**
     * WebSocket 启动的时候优先于 spring 容器，从而导致在 WebSocketServer 中调用业务 Service 会报空指针异常。
     * 所以需要在 WebSocketServer 中将所需要用到的 service 给静态初始化一下
     * @param recordService
     */
    @Autowired
    private void setRecordService(RecordService recordService) {
        WebSocketServer.recordService = recordService;
    }
}